package chaoyue.study.basic;

/**
 * 数组协变
 * 即父类型的数组变量可以指向子类型的数组实例，这会导致一些问题
 */
public class ArrayCovariance {
    public static void main(String[] args) {
        // 子类型数组
        Integer[] ints = new Integer[10];
        // 数组协变 Object类型数组的引用可以指向Integer类型的数组
        Object[] objects = ints;
        // 存放int类型的数据没有问题，因为本来就是Integer数组
        objects[0] = 233;
        // 编译可以通过，但运行时会抛出ArrayStoreException，因为objects实际指向的是Integer类型的数组
        objects[1] = "hello";
    }
}
